<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        
    </style>
</head>
<body>
    
</body>
<script>
    
    // var obj = {};
    // console.log(obj)

    
    function Fn(){
        if(!Fn.obj){
            Fn.obj = {};
        }
        Fn.obj.msg = "hello";
        return Fn.obj;
    }

    // new的原理：
        // 1. 创建一个新对象
        // 2. 将原函数中的this指向了这个新对象
        // 3. 将这个新对象的__proto__指向该函数的prototype
        // 4. 如果原函数没有主动返回对象，那么就自动返回这个新对象

    var f1 = new Fn();
    var f2 = new Fn();

    console.log(f1)
    console.log(f2)

    console.log(f1.msg);        // "hello"
    console.log(f1 === f2);     // true

</script>
</html>